Technical Q&As
QD3D 31 - Determining Which Features Are Supported by Specific Renderers (8-Apr-96)
Q Using the QuickDraw 3D API, how can I ascertain whether transparency (or csg
or shadows) is supported by any particular renderer?
A As of version 1.0.4, the QuickDraw API has no support for determining which
features are supported by specific renderers. This capability is planned for a
future release. You can, however, use the QAEngineGestalt() call to get much of
the information you need.
- Note:
- QAEngineGestalt() is found in the Rendering Acceleration Virtual
Engine (RAVE) API, not the QD3D API.
Search the RAVE3D.h file for QAEngineGestalt, and look for the associated
comments regarding what kind of selectors you can use in you queries. You'll
also need to call QADeviceGetFirstEngine() to get a reference to the first 3D
accelerator card. Then you must call QADeviceGetNextEngine() to get references
to any other 3D accelerator cards in the system. QADeviceGetNextEngine() will
return NULL if there are no more cards.
Remember that, as of version 1.0.4, transparency is not supported if there is
no 3D acceleration card. CSG (Constructive Solid Geometry) and shadows are
unimplemented features that are scheduled for a future version of QuickDraw 3D,
and will also most probably require hardware assist.
What is RAVE
RAVE stands for Rendering Acceleration Virtual Engine (RAVE) API. It is a
standard API specification for applications which make use of any 3D
acceleration provided by 3D accelerator hardware. It also specifies the API for
drivers (aka "drawing engines") of 3D accelerator hardware. Because RAVE
describes both an application API and a driver API, RAVE is often referred to
as a "thin veneer" between the two layers. Application authors who use the RAVE
layer are guaranteed the fastest possible access to hardware acceleration;
hardware vendors who supply RAVE-compliant drivers for their cards are
guaranteed a large base of applications compatible with their hardware.
Technical Q&As
Previous Question | Contents | Next Question